此章專講迴圈
for(初始化;判斷條件式;遞增式){
程式敘述一;
程式敘述二;
}
程式範例試做(1):
public class Alex0922_1{
public static void main (String[] args){
for(int i = 0; i < 10; i++);
System.out.print(" "+i);
}
}
執行結果:
1 2 3 4 5 6 7 8 9
程式範例試做(2):
public class Alex0922_2{
public static void main (String[] args){
int sum = 0;
for(int i = 1; i <= 10; i++);
sum+=i;
for(int i = 1; i <= 10; i++);
factorial*=i;
System.out.print("級數和:"+sum+"\t階層積:+factorial);
}
}
執行結果:
級數和:55 階層積:3628800
for迴圈的「遞增式」不一定是增加某一個變數值,遞增式只是迴圈區域程式執行後會接著執行的敘述。
public class Alex0922_3{
public static void main (String[] args){
int num = 5;
for(int i = 1; i<=num; i++){
for(int j = num-i; j < 10; j--)
System.out.print("");
for (int k = 1; k <=(i*2-1);k++)
System.out.println("*");
System.out.println();
}
}
}
程式執行結果
*
***
*****
*******
*********
while(判斷條件){
程式敘述一;
程式敘述二;
}
程式範例試做:
import java.util.Scanner;
public class Alex0922_4{
public static void main (String[] args){
Scanner sc = new Scanner(System.in);
int score = 0;
int sum = 0;
int cnt = -1;
while(score != -1){
cnt++;
sum += score;
System.out.print("輸入分數(-1結束):");
score = sc.nextInt();
}
System.out.println("學生人數:"+cnt+",平均分數:+(double)sum/cnt);
}
}
程式執行結果:
輸入分數(-1結束):77
輸入分數(-1結束):52
輸入分數(-1結束):89
輸入分數(-1結束):64
輸入分數(-1結束):93
輸入分數(-1結束):-1
學生人數:5, 平均分數:75
do{
程式敘述一;
程式敘述二;
}while (判斷條件);
程式範例試做:
import java.util.Scanner;
public class Alex0922_5{
public static void main(String[] args){
Scanner sc = new Scanner (System.in);
int ans = (int Math.random() * 100);
int guess;
do {
System.out.print("請選擇終極密碼答案:");
guess = sc.nextInt();
if(guess > ans)
System.out.println("太大囉!");
else if (guess < an)
System.out.println("太小囉!");
}while (guess != ans);
System.out.println("恭喜,猜中了!");
}
}
程式執行結果:
請選擇終極密碼答案:5
太小囉!
請選擇終極密碼答案:8
恭喜,猜中了!
本章歸納出下三點總結:
1.有明確起迄迴圈執行次數,適用for。
2.沒有明確執行迴圈的次數,須先判斷條件在執行區域內程式,適用while。
3.沒有明確執行迴圈的次數,須先執行區域內程式,再判斷條件之情況,適用do...while